!--------------------------------------------------!
!  Boundary condition                              !
!--------------------------------------------------!
        SUBROUTINE BOUNDI()
        USE BASIC_MOD
        IMPLICIT NONE
        INTEGER::   I,J
!-----------UP WALL CONDITION
        DO J=1,2
            UU(:,1-J)=UU(:,J)
            VV(:,1-J)=-VV(:,J)
            PP(:,1-J)=PP(:,J) 
            DD(:,1-J)=DD(:,J)
            TT(:,1-J)=TT(:,J)
            HH(:,1-J)=HH(:,J)
            GA(:,1-J)=GA(:,J) 
            EE(:,1-J)=EE(:,J)
        END DO 
        
!-----------DOWN WALL CONDITION
        DO J=1,2
            UU(:,YCELLS+J)=UU(:,YCELLS+1-J)
            VV(:,YCELLS+J)=-VV(:,YCELLS+1-J)
            PP(:,YCELLS+J)=PP(:,YCELLS+1-J) 
            DD(:,YCELLS+J)=DD(:,YCELLS+1-J)
            TT(:,YCELLS+J)=TT(:,YCELLS+1-J)
            HH(:,YCELLS+J)=HH(:,YCELLS+1-J)
            GA(:,YCELLS+J)=GA(:,YCELLS+1-J) 
            EE(:,YCELLS+J)=EE(:,YCELLS+1-J)
        END DO 
!-------------LEFT BOUNDARY CONDITION
        DO i=1,2
        UU(1-i,:)=UU(i,:)
        VV(1-i,:)=VV(i,:)
        PP(1-i,:)=PP(i,:) 
        DD(1-i,:)=DD(i,:)
        TT(1-i,:)=TT(i,:)
        HH(1-i,:)=HH(i,:)
        GA(1-i,:)=GA(i,:) 
        EE(1-i,:)=EE(i,:)
        END DO
        
!-------------RIGHT BOUNDARY CONDITION
        DO i=1,2
        UU(XCELLS+i,:)=UU(XCELLS+1-i,:)
        VV(XCELLS+i,:)=VV(XCELLS+1-i,:)
        PP(XCELLS+i,:)=PP(XCELLS+1-i,:) 
        DD(XCELLS+i,:)=DD(XCELLS+1-i,:)
        TT(XCELLS+i,:)=TT(XCELLS+1-i,:)
        HH(XCELLS+i,:)=HH(XCELLS+1-i,:)
        GA(XCELLS+i,:)=GA(XCELLS+1-i,:) 
        EE(XCELLS+i,:)=EE(XCELLS+1-i,:)
        END DO
        END SUBROUTINE